package com.indusfo.spc.controller;

import com.indusfo.spc.aspect.SystemControllerLog;
import com.indusfo.spc.exception.GlobalException;
import com.indusfo.spc.pojo.BatchScrap;
import com.indusfo.spc.service.BatchScrapService;
import com.indusfo.spc.vo.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;


/**
 * 产品报废控制层
 */
@Controller
@RequestMapping("/service//batchScrap")
public class BatchScrapController {

    @Autowired
    private BatchScrapService batchScrapService;

    /**
     * 修改产品报废
     *
     * @param batchScrap
     * @return
     */
    @RequestMapping(value = "/updateBatchScrap",method= RequestMethod.POST)
    @SystemControllerLog(description="修改产品报废")
    @ResponseBody
    public JSONObject updateBatchScrap(@RequestBody BatchScrap batchScrap){
        try{
            JSONObject json=batchScrapService.updateBatchScrap(batchScrap);
            return json;
        } catch ( GlobalException e) {
            e.printStackTrace();
            return JSONObject.build(403, e.getMessage());
        }
    }

    /**
     * 查询产品报废
     *
     * @param batchScrap
     * @return com.indusfo.spc.vo.JSONObject
     */
    @RequestMapping(value="/queryBatchScrap")
    @SystemControllerLog(description="查询产品报废")
    @ResponseBody
    public JSONObject queryBatchScrap(BatchScrap batchScrap) {

        JSONObject json = batchScrapService.selectAll(batchScrap);
        return json;
    }

    /**
     * 新增产品报废
     *
     * @return com.indusfo.spc.vo.JSONObject
     */
    @RequestMapping(value="/insertBatchScrap", method= RequestMethod.POST)
    @SystemControllerLog(description="新增产品报废")
    @ResponseBody
    public JSONObject insertBatchScrap(BatchScrap batchScrap) {
        try{
            JSONObject json = batchScrapService.insertBatchScrap(batchScrap);
            return json;
        } catch ( GlobalException e) {
            e.printStackTrace();
            return JSONObject.build(403, e.getMessage());
        }
    }

    /**
     * 审核 产品报废
     *
     * @param batchScrapIds, dataState
     * @return com.indusfo.spc.vo.JSONObject
     */
    @RequestMapping(value="/auditBsatchScrap", method= RequestMethod.POST)
    @SystemControllerLog(description="审核产品报废")
    @ResponseBody
    public JSONObject auditBsatchScrap(Integer[] batchScrapIds, Integer[] auditStates, Integer auditState) {
        try{
            JSONObject json = batchScrapService.auditBsatchScrap(batchScrapIds, auditStates, auditState);
            return json;
        } catch ( GlobalException e) {
            e.printStackTrace();
            return JSONObject.build(403, e.getMessage());
        }
    }

    /**
     * 删除产品报废
     *
     * @param batchScrapIds, dataState
     * @return com.indusfo.spc.vo.JSONObject
     */
    @RequestMapping(value="/deleteBatchScrap", method= RequestMethod.POST)
    @SystemControllerLog(description="删除产品报废")
    @ResponseBody
    public JSONObject deleteBatchScrap(Long[] batchScrapIds, Integer dataState ,Integer[] auditStates) {
        try{
            dataState = 2;
            JSONObject json = batchScrapService.deleteBatchScrap(batchScrapIds, dataState, auditStates);
            return json;
        } catch ( GlobalException e) {
            e.printStackTrace();
            return JSONObject.build(403, e.getMessage());
        }
    }
}
